﻿using System;
using System.Data.Entity;
using ProjetoComperio.DataLayer.Entities;
using Environment = ProjetoComperio.DataLayer.Entities.Environment;
//using DataLayer;

namespace ProjetoComperio.DataLayer.Infra
{
    public interface IComperioEntitiesDataModel
    {

        void Dispose();
        void SaveChanges();

        #region Database Functions
        void DeleteDatabase();
        void CreateDatabase();
        Boolean DatabaseExists();
        #endregion

        Boolean IsInitialized { get; set; }

        #region IDbSet

        IDbSet<AcademicOrganization> AcademicOrganizations { get; }
        IDbSet<AcademicOrganizationType> AcademicOrganizationTypes { get; }
        IDbSet<AgeRange> AgeRanges { get; }
        IDbSet<Course> Courses { get; }
        IDbSet<Comment> Comments { get; }
        IDbSet<Subject> Subjects { get; }
        IDbSet<EducationLevel> EducationLevels { get; }
        IDbSet<Context> Contexts { get; }
        IDbSet<Contribution> Contributions { get; }

        IDbSet<ContributionItem> ContributionItems { get; }

        IDbSet<Environment> Environments { get; }
        IDbSet<KnowledgeArea> KnowledgeAreas { get; }
        IDbSet<NewContributionMember> NewContributionMembers { get; }
        IDbSet<Person> People { get; }
        IDbSet<Platform> Platforms { get; }
        IDbSet<Proposal> Proposals { get; }
        IDbSet<AcademicPersonCV> AcademicPersonCVs { get; }        
        IDbSet<Application> Applications { get; }

        #endregion
    }
}


